package com.canaan.business.mapper.basic;

import java.util.List;
import com.canaan.business.domain.basic.StorehousePermission;
import org.apache.ibatis.annotations.Param;

/**
 * 仓库权限Mapper接口
 *
 * @author ruoyi
 * @date 2023-02-01
 */
public interface StorehousePermissionMapper {
    /**
     * 查询仓库权限
     *
     * @param id 仓库权限主键
     * @return 仓库权限
     */
    public StorehousePermission selectStorehousePermissionById(Long id);

    /**
     * 查询仓库权限列表
     *
     * @param storehousePermission 仓库权限
     * @return 仓库权限集合
     */
    public List<StorehousePermission> selectStorehousePermissionList(StorehousePermission storehousePermission);

    /**
     * 新增仓库权限
     *
     * @param storehousePermission 仓库权限
     * @return 结果
     */
    public int insertStorehousePermission(StorehousePermission storehousePermission);

    /**
     * 批量新增仓库权限
     *
     * @param storehousePermissionList 仓库权限列表
     * @return 结果
     */
    public int batchInsertStorehousePermission(List<StorehousePermission> storehousePermissionList);

    /**
     * 修改仓库权限
     *
     * @param storehousePermission 仓库权限
     * @return 结果
     */
    public int updateStorehousePermission(StorehousePermission storehousePermission);

    /**
     * 批量修改仓库权限
     *
     * @param storehousePermissionList 仓库权限列表
     * @return 结果
     */
    public int batchUpdateStorehousePermission(List<StorehousePermission> storehousePermissionList);

    /**
     * 删除仓库权限
     *
     * @param id 仓库权限主键
     * @return 结果
     */
    public int deleteStorehousePermissionById(Long id);

    /**
     * 根据仓库权限no查询有几条引用的仓库
     *
     * @param nos 权限nos
     * @return 数量
     */
    public int getCountUsedStorehouseByNos(String[] nos);

    /**
     * 根据权限名称、id查询是否存在名称重复的权限
     *
     * @param name 权限名称
     * @param id id
     * @return 数量
     */
    public int checkNameCount(@Param("name") String name, @Param("id") Long id);

    /**
     * 批量删除仓库权限
     *
     * @param nos 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStorehousePermissionByIds(String[] nos);

    /**
     * 查询仓库权限
     *
     * @param no 编号
     * @return 仓库权限
     */
    public StorehousePermission selectStorehousePermissionByNo(String no);

    /**
     * 批量删除仓库权限
     *
     * @param nos 需要删除的编号集合
     * @return 结果
     */
    public int deleteStorehousePermissionByNos(String[] nos);

    /**
     * 删除仓库权限信息
     *
     * @param no 编号
     * @return 结果
     */
    public int deleteStorehousePermissionByNo(String no);

}
